home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Archives / ForCLI / MyFont.lha / MyFont / MyFont.S < prev    next >
Encoding:
Text File  |  1992-09-02  |  3.9 KB  |  102 lines

  1. ***********************************************************************
  2. *
  3. *                           MyFont 1.0
  4. *
  5. *          (c) 1994 One of Binary Mystery (Jan Skypala)
  6. *
  7. *                  $VER: MyFont.s 37.1 (19.2.94)
  8. *
  9. ***********************************************************************
  10.  
  11.                 incdir  'Include:'
  12.                 include 'exec/exec_lib.i'
  13.                 include 'exec/memory.i'
  14.                 include 'graphics/graphics_lib.i'
  15.                 include 'graphics/text.i'
  16.                 include 'diskfont/diskfont_lib.i'
  17.  
  18. _SysBase        equ     4
  19.  
  20. Start           move.l  (_SysBase).w,a6
  21.                 move.l  #ResidentEnd-ResidentStart,d4
  22.                 move.l  d4,d0
  23.                 moveq.l #MEMF_PUBLIC,d1
  24.                 jsr     _LVOAllocMem(a6)        ;allocate memory
  25.                 move.l  d0,a0
  26.                 move.l  d0,a4
  27.                 lea     ResidentStart(pc),a1
  28. .loop           move.b  (a1)+,(a0)+             ;and move resident part
  29.                 dbra    d4,.loop                ;there
  30. PatchIt         lea     diskfontname(pc),a1
  31.                 moveq   #0,d0
  32.                 jsr     _LVOOpenLibrary(a6)     ;open diskfont.library
  33.                 beq.b   .gfx
  34.                 move.l  d0,a1
  35.                 move.w  #_LVOOpenDiskFont,a0
  36.                 moveq.l #DiskFont-ResidentStart,d0
  37.                 add.l   a4,d0
  38.                 jsr     _LVOSetFunction(a6)     ;patch OpenDiskFont()
  39.                 move.l  d0,OpenDiskFont-ResidentStart(a4)
  40. .gfx            lea     gfxname(pc),a1
  41.                 moveq   #0,d0
  42.                 jsr     _LVOOpenLibrary(a6)     ;open graphics.library
  43.                 beq.b   .end
  44.                 move.l  d0,a1
  45.                 move.w  #_LVOOpenFont,a0
  46.                 moveq.l #GfxFont-ResidentStart,d0
  47.                 add.l   a4,d0
  48.                 jsr     _LVOSetFunction(a6)     ;patch OpenFont()
  49.                 move.l  d0,OpenFont-ResidentStart(a4)
  50.                 moveq.l #0,d0
  51. .end            rts
  52.  
  53. ***********************************************************************
  54. ResidentStart
  55. GfxFont         cmp.w   #8,ta_YSize(a0)         ;is it size 8?
  56.                 bne.b   .nosize8
  57.                 move.l  a1,-(a7)
  58.                 movem.l a0/d0,-(a7)
  59.                 move.l  (a0),a0
  60.                 lea     TopazName(pc),a1
  61. .loop           move.b  (a0)+,d0                ;is it 'topaz.font'?
  62.                 cmp.b   (a1)+,d0
  63.                 bne.b   .notopaz
  64.                 tst.b   d0
  65.                 bne.b   .loop
  66.                 movem.l (a7)+,a0/d0
  67.                 lea     ThinpazName(pc),a1      ;change it to
  68.                 move.l  a1,(a0)                 ;'thinpaz.font'
  69.                 bra.b   ..
  70. .notopaz        movem.l (a7)+,a0/d0             
  71. ..              move.l  (a7)+,a1
  72. .nosize8        move.l  OpenFont(pc),-(a7)      ;and do normal OpenFont()
  73.                 rts
  74. DiskFont        cmp.w   #8,ta_YSize(a0)         ;is it size 8?
  75.                 bne.b   .nosize8
  76.                 move.l  a1,-(a7)
  77.                 movem.l a0/d0,-(a7)
  78.                 move.l  (a0),a0
  79.                 lea     TopazName(pc),a1
  80. .loop           move.b  (a0)+,d0                ;is it 'topaz.font'
  81.                 cmp.b   (a1)+,d0
  82.                 bne.b   .notopaz
  83.                 tst.b   d0
  84.                 bne.b   .loop
  85.                 movem.l (a7)+,a0/d0
  86.                 lea     ThinpazName(pc),a1      ;change it to
  87.                 move.l  a1,(a0)                 ;'thinpaz.font'
  88.                 bra.b   ..
  89. .notopaz        movem.l (a7)+,a0/d0             
  90. ..              move.l  (a7)+,a1
  91. .nosize8        move.l  OpenDiskFont(pc),-(a7)  ;and do OpenDiskFont()
  92.                 rts
  93. OpenDiskFont    dc.l    0
  94. OpenFont        dc.l    0
  95. gfxname         dc.b    'graphics.library',0
  96. diskfontname    dc.b    'diskfont.library',0
  97. TopazName       dc.b    'topaz.font',0
  98. ThinpazName     dc.b    'thinpaz.font',0
  99. ResidentEnd
  100. version         dc.b    '$VER: MyFont 37.1 (19/2/94)',0
  101. ***********************************************************************
  102.